package 线程安全;

public class 单例模式_懒汉式_多线程效率低 {
    private static 单例模式_懒汉式_多线程效率低 instance = null;

    //这样写，满足线程安全；为什么说，这样写效率低？
    //1.在instance=null的时候，如果有多个线程调用getInstance，需要保证线程安全（一个线程写，其他线程读）
    //2.在instance已经赋值给一个创建好的对象以后，再有多个线程调用getInstance（多个线程读）
    //考虑优化：第1个情况，加锁，第2个情况，使用volatile就可以了
    public synchronized static 单例模式_懒汉式_多线程效率低 getInstance(){
        if(instance == null) instance = new 单例模式_懒汉式_多线程效率低();
        return instance;
    }
}
